Лічильник команд Регістр DPTR Пам`ять Порти

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Лічильник команд. Регістр DPTR. Пам'ять. Порти

Лічильник команд (PC) призначений для формування поточного 16-розрядної адреси програмної пам'яті і 8/16-разрядного адреси зовнішньої пам'яті даних.

До складу лічильника команд входять 16-розрядні буфер PC, регістр покажчика даних DPTR, регістр PC, схема інкремента, регістр адреси пам'яті.

Буфер PC здійснює зв'язок між 16-розрядною шиною PC до восьмирозрядний магістраллю даних, забезпечуючи запис, зберігання і комутацію інформації.

Регістр покажчика даних (DPTR) призначений для зберігання 16-разрядногс адреси зовнішньої пам'яті даних. Складається з двох восьмирозрядних регістрів DPH і DPL, що входять в блок регістрів спеціальних функцій. Вони програмно доступні і можуть використовуватися в якості двох незалежних РОН, якщо немає необхідності в зберіганні 16-розрядної адреси зовнішньої пам'яті даних. У регістрі PC зберігається поточний 16-розрядний адреса пам'яті програм. Схема інкремента збільшує поточне значення 16-розрядної адреси пам'яті програм на одиницю.

Регістр адреси пам'яті призначений для запису і зберігання виконавчого 16-розрядної адреси пам'яті програм або 8/16-разрядного адреси зовнішньої пам'яті даних, а також для передачі даних на порт Р0 при виконанні команд MOVX @ Ri, А і MOVX @ DPTR, А, забезпечують запис даних через порт Р0 в зовнішні пристрої через порти Р0, Р1, Р2, РЗ.

Порти Р0, Р1, Р2, РЗ є двонаправленими портами введення-виведення і призначені для забезпечення обміну інформацією ОМЕВМ із зовнішніми пристроями, утворюючи 32 лінії вводу-виводу. Кожен з портів містить фіксатор-клямку, який представляє собою восьмирозрядний регістр, що має байтове і бітову адресацію для установки (скидання) розрядів за допомогою програмного забезпечення.

Фізичні адреси фіксаторів Р0, Р1, Р2, РЗ становлять для:

Р0 - 80Н, при бітової адресації 80Н-87Н;

Р1 - 90н, при бітової адресації 90н-97н;

Р2 - А0Н, при бітової адресації А0Н - А7Н;

РЗ - В0Н, при бітової адресації В0Н-В7Н.

Крім роботи в якості звичайних портів введення / виводу лінії портів Р0-РЗ можуть виконувати ряд додаткових функцій, описаних нижче.

Через порт Р0:

- Виводиться молодший байт адреси А0 - А 7 при роботі із зовнішньою пам'яттю програм і зовнішньою пам'яттю даних;

- Видається з ОМЕВМ і приймається в ОМЕВМ байт даних при роботі із зовнішньою пам'яттю (при цьому обмін байтом даних і виведення молодшого байта адреси зовнішньої пам'яті мультиплексованих у часі);

- Задаються дані при програмуванні внутрішнього ППЗУ і читається вміст внутрішньої пам'яті програм.

Через порт Р1:

- Задається молодший байт адреси при програмуванні внутрішнього ППЗУ і при читанні внутрішньої пам'яті програм.

Через порт Р2:

- Виводиться старший байт адреси А 8 - А15 при роботі із зовнішньою пам'яттю програм і зовнішньою пам'яттю даних (для зовнішньої пам'яті даних - тільки при використанні команд MOVX A, @ DPTR і MOVX @ DPTR, A, які виробляють 16-розрядний адреса);

- Задається старший байт (розряди А8 - А14) адреси при програмуванні внутрішнього ППЗУ і при читанні внутрішньої пам'яті програм.

Кожна лінія порту РЗ має індивідуальну альтернативну функцію:

РЗ. 0 - RxD, вхід послідовного порту, призначений для введення послідовних даних в приймач послідовного порту;

РЗ. 1 - TxD, вихід послідовного порту, призначений для виведення послідовних даних з передавача послідовного порту;

РЗ. 2 - INT 0, використовується як вхід 0 зовнішнього запиту переривання;

РЗ. 3 - INT 1, використовується як вхід 1 зовнішнього запиту переривання;

РЗ. 4 - Т0, використовується як вхід лічильника зовнішніх подій Т / С 0;

РЗ. 5 - Т 1, використовується як вхід лічильника зовнішніх подій Т / С 1;

РЗ. 6 - WR, строб запису у зовнішню пам'ять даних, вихідний сигнал, що супроводжує висновок даних через. Порт Р0 при використанні команд MOVX @ Ri, A і MOVX @ DPTR, А.

РЗ. 7 - RD, строб читання із зовнішньої пам'яті даних, вихідний сигнал, що супроводжує введення даних через порт Р0 при використанні команд MOVX A, @ Ri і MOVX A, @ DPTR.

Альтернативна функція будь-якої з ліній порту РЗ реалізується тільки в тому випадку, якщо у відповідному цієї лінії розряді фіксатора-засувки міститься "1". В іншому випадку на лінії порту РЗ буде присутній "0".

Електричні параметри портів Р0-РЗ наведено в табл 1. Вихід тригера Q може бути підключений на внутрішню шину ОМЕВМ через буфер В1 сигналом "Читання засувки", що забезпечуючи можливість програмного читання вмісту фіксатора. Значення сигналу безпосередньо на виведенні порту може бути програмно лічено па внутрішню шину ОМЕВМ через буфер В2, керований внутрішнім сигналом "Читання висновків". Частина команд ОМЕВМ при читанні порту активізують сигнал "Читання засувки", інша частина команд - сигнал "Читання висновків".

Вихідні каскади порту Р0 (утворені транзисторами Nl, N) і порту Р2 (утворені транзисторами Nl, N 2, N) через мультиплексори MX можуть підключатися або до виходу засувок, або до внутрішніх шинам "Адреса / дані" і "Адреса". Остання використовується при зверненні до зовнішньої пам'яті. Під час звернення до зовнішньої пам'яті вміст засувок порту Р2 не змінюється. В аналогічній ситуації в засувки порту Р0 завжди автоматично записуються "1" в усі розряди.

Якщо клямка виводу порту РЗ містить "1", то вихідним каскадом управляє внутрішній сигнал забезпечує виконання відповідної альтернативної функції. Якщо альтернативна функція припускає, що даний висновок порту РЗ є входом, то значення рівня сигналу на ньому надходить на внутрішню лінію "Альтернативна функція входу".

Усі висновки портів Р1, Р2 і РЗ мають внутрішні підключені до живлення підтягують резистори. Кожен висновок зазначених портів може незалежно від інших використовуватися як вхід або як вихід. Для використання виводу в якості входу необхідно, щоб його засувка містила "1", яка при цьому замикає вихідний транзистор N. Через наявність внутрішнього подтягивающего резистора висновки портів Р1, Р2, РЗ в режимі "обірваний вхід" мають рівень "1". Завдяки цій особливості порти Р1, Р2, РЗ іноді називають "квазідвунаправленние".

Порт Р0 не має внутрішніх підтягаючих резисторів. Транзистор N 1 у вихідному каскаді висновків порту Р0 відкритий тільки коли через ці висновки видається "1" при зверненнях до зовнішньої пам'яті. У всіх інших режимах роботи транзистор NI замкнений. Таким чином, у разі використання порту Р0 в якості вихідного порту загального призначення, необхідно встановлювати на його висновках зовнішні підтягують резистори для завдання рівня "1". Запис "1" в засувку виводу порту Р0 закриває транзистор N і при відсутності зовнішнього подтягивающего резистора переводить висновок в високоімпедансное стан. При цьому даний висновок може використовуватися в якості входу. Якщо порт Р0 використовується як порту введення / виведення загального призначення, кожен з його висновків може незалежно від інших працювати як вхід або як вихід. Порт Р0 є в чистому вигляді двонаправленим портом.

Всі розряди фіксаторів-засувок портів Р0-РЗ по скиданню встановлюються в "1". Якщо клямка виводу порту містить "0", то для налаштування даного висновку на введення необхідно записати в засувку "1".

При виконанні команди запису в порт нове значення записується в засувку у фазі S 6 P 2 останнього машинного циклу команди. Проте, новий вміст засувки виводиться безпосередньо на вихідний контакт порту тільки у фазі S 1 P 1 такого машинного циклу.

При переході висновків портів Р1, Р2 і РЗ зі стану "0" в стан "1" для зменшення часу перемикання використовується додатковий транзистор N1, який включається на час, що дорівнює двом періодам tbq тактовою частоти ОМЕВМ fBQ (транзистор N1 відкритий протягом фаз S1P1 і S 1 P 2 машинного циклу, в якому відбувається зміна стану виводу порту). У відкритому стані транзистор N1 забезпечує струм приблизно в 100 разів більший, ніж постійно відкритий транзистор N 2.

Розглянутий вихідний каскад містить три р-канальних МОП транзистора (Р1, Р2, РЗ), підключених до джерела живлення, і один п-МОП транзистор, підключений до загальної шини. Можна відзначити, що п-МОП транзистори, використовувані у вихідних каскадах ОМЕВМ серій 1816 і 1830 відкриті, коли на їх затворах логічна "1" і закриті, коли на їх затворах логічний "0". Р-МОП транзистори, навпаки, відкриті, коли на їх затворах "0" і закриті, коли на затворах "1".

Транзистор Р1 на рис. 2 включається на два періоди TBQ для зменшення часу перемикання при переході виводу порту зі стану "0" в стан "1". Як тільки відкривається транзистор Р1, сигнал з виходу порту через інвертор надходить на затвор транзистора РЗ і також відкриває його. Цей інвертор і транзистор РЗ утворюють тригер, який утримує стан логічної "1" на виході порту після того, як транзистор Р1 закривається.

Для запобігання подібної ситуації служить транзистор Р2, що працює в протифазі з транзистором N. Після зникнення перешкоди транзистор Р2 через інвертор знову відкриє транзистор РЗ. Потужність транзистора Р2 приблизно в 10 разів менше потужності транзистора РЗ.

Команди читання портів ОМЕВМ діляться на дві категорії: команди, що зчитують інформацію з виходів засувок, і команди, що зчитують інформацію безпосередньо із зовнішніх контактів висновків порту. Команди, що зчитують інформацію з виходів засувок, реалізують так званий режим "Читання - Модифікація - Запис", що полягає в тому, що команда зчитує стан засувки, при необхідності модифікує отримане значення і записує результат назад в засувку.

Нижче наводяться команди, що працюють в режимі "Читання - Модифікація-Запис". У всіх випадках, коли операндом і регістром призначення результату є порт або біт порту, команди зчитують інформацію з виходів засувок, а не з зовнішніх контактів висновків порту. ANL (логічне І, наприклад, ANL Р1, А) ORL (логічне АБО, наприклад, ORL Р2, А) XRL (логічне ВИКЛЮЧАЄ АБО, наприклад, XRL РЗ, А) JBC (перехід, якщо біт = 1 і очищення біта, наприклад, JBC Р1. I, LABEL) CPL (інверсія біта, наприклад, CPL РЗ. 0 ) INC (інкремент, наприклад, INC Р2) DEC (декремент, наприклад, DEC Р2)

DJNZ декремент і перехід, якщо не нуль, наприклад, DJNZ РЗ, LABEL) MOV РХ. Y, С (пересилання біта перенесення в біт Y порту X) CLR РХ. Y (очищення біта Y порту X) SETB РХ. Y (установка біта Y порту X)

Чи не очевидно, що останні три команди в наведеному списку працюють в режимі "Читання - Модифікація - запис", проте, це так. Зазначені команди] зчитують з порту весь байт цілком, модифікують адресується біт, після чеу записують отриманий новий байт назад у фіксатор-клямку порту.

Читання інформації з виходів засувок, а не з зовнішніх контактів висновків порту дозволяє виключити можливу в ряді випадків неправильну інтерпретацію рівня напруги на виводі порту. Наприклад, висновок порту може використовуватися для управління базою п-р-п транзистора. У цьому випадку, коли в засувку виводу порту записується "1", транзистор відкривається. Якщо після цього ОМЕВМ прочитає стан зовнішнього контакту розглянутого виводу порту, то отримає значення логічного "0", т. к. на контакті в цей час присутній напруга бази відкритого транзистора. Читання ж виходу засувки покаже справжнє значення сигналу на виведенні порту, тобто "1" з пам'яті даних.

Пам'ять даних призначена для прийому, зберігання та видачі інформації, використовуваної в процесі виконання програми. Пам'ять даних, розташована на кристалі ОМЕВМ, складається з регістра адреси ОЗП, дешифратора, ОЗУ і покажчика стека.

Регістр адреси ОЗП призначений для прийому і зберігання адреси вибирається за допомогою дешифратора комірки пам'яті, яка може містити як біт, так і байт інформації.

ОЗУ представляє собою 128 восьмирозрядних регістрів, призначених для прийому, зберігання та видачі різної інформації.

Покажчик стека представляє собою восьмирозрядний регістр, призначений для прийому і зберігання адреси комірки стека, до якої було останнє звернення. При виконанні команд LCALL, ACALL вміст покажчика стека збільшується на 2. При виконанні команд RET, RETI вміст покажчика стека зменшується на 2. При виконанні команди PUSH direct вміст покажчика стека збільшується на 1. При виконанні команди POP direct вміст покажчика стека зменшується на 1. Після скидання в покажчику стека встановлюється адресу 07Н, що відповідає початку стека з адресою 08Н.

У ОМЕВМ передбачена можливість розширення пам'яті даних шляхом підключення зовнішніх пристроїв ємністю до 64 Кбайт. При цьому звернення до зовнішньої пам'яті даних можливо тільки за допомогою команд MOVX.

Команди MOVX @ Ri, A і MOVX A, @ Ri формують восьмирозрядний адресу, що видається через порт Р0. Команди MOVX © DPTR. A і MOVX © A. DPTR формують 16-розрядний адреса, молодший байт якого видається через порт Р0, а старший - через порт Р 2.

Байт адреси, що видається через порт Р0, повинен бути зафіксований в зовнішньому регістрі по спаду сигналу ALE, тому що в подальшому лінії порту Р0 использут як шина даних, через яку байт даних приймається з пам'яті при читанні або видається в пам'ять даних при записі. При цьому читання пробираючись сигналом ОМЕВМ RD, а запис - сигналом ОМЕВМ WR. При роботі з внутрішньою пам'яттю даних сигнали RD і WR не формуються, а є основою пам'яті програм.

Пам'ять програм призначена для зберігання програм і має окреме від пам'яті даних адресний простір об'ємом до 64 Кбайт, причому, для мікросхем КР1816ВЕ51, КМ1816ВЕ751 і для КР183ОВЕ51 частину пам'яті програм з адресами 0000Н - 0 FFFH розташована на кристалі ОМЕВМ. Пам'ять програм, розташована на кристалі, складається з 12-розрядного дешифратора і ПЗУ ємністю 4К * 8 біт для мікросхем КР1816ВЕ51, КР183ОВЕ51 або ППЗП з ультрафіолетовим стиранням ємністю 4К * 8 біт для КМ1816ВЕ751. Запис програм в ПЗУ відбувається під час виготовлення кристалів.

Якщо на висновок ОМЕВМ DEMA подана напруга живлення Ucc, то звернення до зовнішньої пам'яті програм відбувається автоматично при виробленні лічильником команд адреси, що перевищує 0FFFH. Якщо адреса знаходиться в межах 0000Н-0FFFH, звернення відбувається до пам'яті програм, розташованої на кристалі (внутрішньої пам'яті програм) .

Якщо на висновок ОМЕВМ DEMA поданий "0", внутрішня пам'ять програм відключається і починаючи з адреси 0000Н всі звернення виконуються до зовнішньої пам'яті програм.

Якщо ОМЕВМ не має внутрішньої пам'яті програм, її висновок DEMA повинен бути підключений до шини 0 В.

Читання з зовнішньої пам'яті програм стробирующий сигналом ОМЕВМ РМЕ. При роботі з внутрішньою пам'яттю програм сигнал РМЕ не формується. ОМЕВМ не мають інструкцій і апаратних засобів для програмної запису в пам'ять програм.

При зверненнях до зовнішньої пам'яті програм завжди формується 16-розрядний адреса, молодший байт якого видається через порт Р0, а старший - через порт Р2. При цьому байт адреси, що видається через порт Р0, повинен бути зафіксований в зовнішньому регістрі по спаду сигналу ALE, тому що в подальшому лінії порту Р0 використовуються в якості шини даних, по якій байт із зовнішньої пам'яті програм вводиться в ОМЕВМ.

Порт Р0 працює як мультиплексована шина адресу / дані: видає молодший байт лічильника команд, а потім переходить в високоімпедансное стан і чекає приходу байта з ППЗУ програм. Коли молодший байт адреси знаходиться на виходах порту Р0, сигнал АLЕ защелкивает його в адресному регістрі RG. Старший байт адреси знаходиться на виходах порту Р2 протягом всього часу звернення до ППЗУ. Сигнал РMЕ дозволяє вибірку байта з ППЗУ, після чого вибраний байт надходить на порт Р0 МК51 і вводиться в ОМЕВМ.

На рис. 1 і 2 наведено діаграми, що показують формування відповідних сигналів при роботі ОМЕВМ із зовнішньою пам'яттю програм. Як видно з діаграм, при роботі із зовнішньою пам'яттю програм сигнал РMЕ формується двічі у кожному машинному циклі незалежно від кількості байт в команді. Якщо другий обираний байт в поточній команді не використовується, він ігнорується ОМЕВМ. Надалі при переході до виконання наступної команди цей байт буде введений вдруге.

Рис. 1. Схема включення МК51 із зовнішнім ППЗУ програм

Рис. 2. Робота із зовнішньою пам'яттю програм

Якщо виконується команда MOVX (рис. 2), два сигнали РМЕ не формуються, тому що порт Р0 звільняється для адресації і обміну даними з зовнішньою пам'яттю даних.

Коли ОМЕВМ працює з внутрішньою пам'яттю програм, РМЕ не формується та адресу на портах Р0 і Р2 не видається. Тим не менш, сигнал ALE буде формуватися двічі у кожному машинному циклі завжди за винятком випадку команди MOVX (в цьому випадку один сигнал ALE пропускається). Таким чином, якщо не використовуються команди MOVX, сигнал ALE може бути задіяний в якості вихідного синхросигналу.

Література

  1. Таверньє К. PIC-мікроконтролери. Практика застосування: Пер. з фр. -М: ДМКПресс, 2008. - 272 с.: Іл. (Серія «Довідник»).

  2. Борзенко О. Є. IBM PC: пристрій, ремонт, модернізація. - 2-е вид. перераб. і доп. - М.: ТОВ фірма «Комп'ютер Прес», 2006. - 344с.: Іл.

  3. Цифрові інтегральні мікросхеми: Справ. / М. І. Богданович, І.М. Грель, В.А. Прохоренко, В.В. Шалімо.-Мн.: Білорусь, 2001. - 493 с.: Іл.

  4. ДСТУ 3008-95. Документація. Звіти у сфері науки і техніки. Структура і правила оформлення.

Додати в блог або на сайт

Цей текст може містити помилки.

Комунікації, зв'язок, цифрові прилади і радіоелектроніка | Контрольна робота
47.1кб. | скачати


Схожі роботи:
Система команд Структура слова команд Синтаксис команд Групи команд
Види пам`яті витісняють статичну пам`ять
Пам`ять і закони пам`яті
Пам`ять 2
Пам`ять
Пам`ять 3
Пам`ять 4
Пам`ять ПК
Пам`ять 5
© Усі права захищені
написати до нас